{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Running Code"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First and foremost, the Jupyter Notebook is an interactive environment for writing and running code. The notebook is capable of running code in a wide range of languages. However, each notebook is associated with a single kernel.  This notebook is associated with the IPython kernel, therefore runs Python code."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Code cells allow you to enter and run code"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Run a code cell using `Shift-Enter` or pressing the <button class='btn btn-default btn-xs'><i class=\"icon-step-forward fa fa-play\"></i></button> button in the toolbar above:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "a = 10"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "10\n"
     ]
    }
   ],
   "source": [
    "print(a)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There are two other keyboard shortcuts for running code:\n",
    "\n",
    "* `Alt-Enter` runs the current cell and inserts a new one below.\n",
    "* `Ctrl-Enter` run the current cell and enters command mode."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Managing the Kernel"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Code is run in a separate process called the Kernel.  The Kernel can be interrupted or restarted.  Try running the following cell and then hit the <button class='btn btn-default btn-xs'><i class='icon-stop fa fa-stop'></i></button> button in the toolbar above."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import time\n",
    "time.sleep(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If the Kernel dies you will be prompted to restart it. Here we call the low-level system libc.time routine with the wrong argument via\n",
    "ctypes to segfault the Python interpreter:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import sys\n",
    "from ctypes import CDLL\n",
    "# This will crash a Linux or Mac system\n",
    "# equivalent calls can be made on Windows\n",
    "\n",
    "# Uncomment these lines if you would like to see the segfault\n",
    "\n",
    "# dll = 'dylib' if sys.platform == 'darwin' else 'so.6'\n",
    "# libc = CDLL(\"libc.%s\" % dll) \n",
    "# libc.time(-1)  # BOOM!!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Cell menu"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The \"Cell\" menu has a number of menu items for running code in different ways. These includes:\n",
    "\n",
    "* Run and Select Below\n",
    "* Run and Insert Below\n",
    "* Run All\n",
    "* Run All Above\n",
    "* Run All Below"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Restarting the kernels"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The kernel maintains the state of a notebook's computations. You can reset this state by restarting the kernel. This is done by clicking on the <button class='btn btn-default btn-xs'><i class='fa fa-repeat icon-repeat'></i></button> in the toolbar above."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## sys.stdout and sys.stderr"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The stdout and stderr streams are displayed as text in the output area."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hi, stdout\n"
     ]
    }
   ],
   "source": [
    "print(\"hi, stdout\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "hi, stderr\n"
     ]
    }
   ],
   "source": [
    "from __future__ import print_function\n",
    "print('hi, stderr', file=sys.stderr)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Output is asynchronous"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "All output is displayed asynchronously as it is generated in the Kernel. If you execute the next cell, you will see the output one piece at a time, not all at the end."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n",
      "1\n",
      "2\n",
      "3\n",
      "4\n",
      "5\n",
      "6\n",
      "7\n"
     ]
    }
   ],
   "source": [
    "import time, sys\n",
    "for i in range(8):\n",
    "    print(i)\n",
    "    time.sleep(0.5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Large outputs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To better handle large outputs, the output area can be collapsed. Run the following cell and then single- or double- click on the active area to the left of the output:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n",
      "1\n",
      "2\n",
      "3\n",
      "4\n",
      "5\n",
      "6\n",
      "7\n",
      "8\n",
      "9\n",
      "10\n",
      "11\n",
      "12\n",
      "13\n",
      "14\n",
      "15\n",
      "16\n",
      "17\n",
      "18\n",
      "19\n",
      "20\n",
      "21\n",
      "22\n",
      "23\n",
      "24\n",
      "25\n",
      "26\n",
      "27\n",
      "28\n",
      "29\n",
      "30\n",
      "31\n",
      "32\n",
      "33\n",
      "34\n",
      "35\n",
      "36\n",
      "37\n",
      "38\n",
      "39\n",
      "40\n",
      "41\n",
      "42\n",
      "43\n",
      "44\n",
      "45\n",
      "46\n",
      "47\n",
      "48\n",
      "49\n"
     ]
    }
   ],
   "source": [
    "for i in range(50):\n",
    "    print(i)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Beyond a certain point, output will scroll automatically:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n",
      "1\n",
      "3\n",
      "7\n",
      "15\n",
      "31\n",
      "63\n",
      "127\n",
      "255\n",
      "511\n",
      "1023\n",
      "2047\n",
      "4095\n",
      "8191\n",
      "16383\n",
      "32767\n",
      "65535\n",
      "131071\n",
      "262143\n",
      "524287\n",
      "1048575\n",
      "2097151\n",
      "4194303\n",
      "8388607\n",
      "16777215\n",
      "33554431\n",
      "67108863\n",
      "134217727\n",
      "268435455\n",
      "536870911\n",
      "1073741823\n",
      "2147483647\n",
      "4294967295\n",
      "8589934591\n",
      "17179869183\n",
      "34359738367\n",
      "68719476735\n",
      "137438953471\n",
      "274877906943\n",
      "549755813887\n",
      "1099511627775\n",
      "2199023255551\n",
      "4398046511103\n",
      "8796093022207\n",
      "17592186044415\n",
      "35184372088831\n",
      "70368744177663\n",
      "140737488355327\n",
      "281474976710655\n",
      "562949953421311\n",
      "1125899906842623\n",
      "2251799813685247\n",
      "4503599627370495\n",
      "9007199254740991\n",
      "18014398509481983\n",
      "36028797018963967\n",
      "72057594037927935\n",
      "144115188075855871\n",
      "288230376151711743\n",
      "576460752303423487\n",
      "1152921504606846975\n",
      "2305843009213693951\n",
      "4611686018427387903\n",
      "9223372036854775807\n",
      "18446744073709551615\n",
      "36893488147419103231\n",
      "73786976294838206463\n",
      "147573952589676412927\n",
      "295147905179352825855\n",
      "590295810358705651711\n",
      "1180591620717411303423\n",
      "2361183241434822606847\n",
      "4722366482869645213695\n",
      "9444732965739290427391\n",
      "18889465931478580854783\n",
      "37778931862957161709567\n",
      "75557863725914323419135\n",
      "151115727451828646838271\n",
      "302231454903657293676543\n",
      "604462909807314587353087\n",
      "1208925819614629174706175\n",
      "2417851639229258349412351\n",
      "4835703278458516698824703\n",
      "9671406556917033397649407\n",
      "19342813113834066795298815\n",
      "38685626227668133590597631\n",
      "77371252455336267181195263\n",
      "154742504910672534362390527\n",
      "309485009821345068724781055\n",
      "618970019642690137449562111\n",
      "1237940039285380274899124223\n",
      "2475880078570760549798248447\n",
      "4951760157141521099596496895\n",
      "9903520314283042199192993791\n",
      "19807040628566084398385987583\n",
      "39614081257132168796771975167\n",
      "79228162514264337593543950335\n",
      "158456325028528675187087900671\n",
      "316912650057057350374175801343\n",
      "633825300114114700748351602687\n",
      "1267650600228229401496703205375\n",
      "2535301200456458802993406410751\n",
      "5070602400912917605986812821503\n",
      "10141204801825835211973625643007\n",
      "20282409603651670423947251286015\n",
      "40564819207303340847894502572031\n",
      "81129638414606681695789005144063\n",
      "162259276829213363391578010288127\n",
      "324518553658426726783156020576255\n",
      "649037107316853453566312041152511\n",
      "1298074214633706907132624082305023\n",
      "2596148429267413814265248164610047\n",
      "5192296858534827628530496329220095\n",
      "10384593717069655257060992658440191\n",
      "20769187434139310514121985316880383\n",
      "41538374868278621028243970633760767\n",
      "83076749736557242056487941267521535\n",
      "166153499473114484112975882535043071\n",
      "332306998946228968225951765070086143\n",
      "664613997892457936451903530140172287\n",
      "1329227995784915872903807060280344575\n",
      "2658455991569831745807614120560689151\n",
      "5316911983139663491615228241121378303\n",
      "10633823966279326983230456482242756607\n",
      "21267647932558653966460912964485513215\n",
      "42535295865117307932921825928971026431\n",
      "85070591730234615865843651857942052863\n",
      "170141183460469231731687303715884105727\n",
      "340282366920938463463374607431768211455\n",
      "680564733841876926926749214863536422911\n",
      "1361129467683753853853498429727072845823\n",
      "2722258935367507707706996859454145691647\n",
      "5444517870735015415413993718908291383295\n",
      "10889035741470030830827987437816582766591\n",
      "21778071482940061661655974875633165533183\n",
      "43556142965880123323311949751266331066367\n",
      "87112285931760246646623899502532662132735\n",
      "174224571863520493293247799005065324265471\n",
      "348449143727040986586495598010130648530943\n",
      "696898287454081973172991196020261297061887\n",
      "1393796574908163946345982392040522594123775\n",
      "2787593149816327892691964784081045188247551\n",
      "5575186299632655785383929568162090376495103\n",
      "11150372599265311570767859136324180752990207\n",
      "22300745198530623141535718272648361505980415\n",
      "44601490397061246283071436545296723011960831\n",
      "89202980794122492566142873090593446023921663\n",
      "178405961588244985132285746181186892047843327\n",
      "356811923176489970264571492362373784095686655\n",
      "713623846352979940529142984724747568191373311\n",
      "1427247692705959881058285969449495136382746623\n",
      "2854495385411919762116571938898990272765493247\n",
      "5708990770823839524233143877797980545530986495\n",
      "11417981541647679048466287755595961091061972991\n",
      "22835963083295358096932575511191922182123945983\n",
      "45671926166590716193865151022383844364247891967\n",
      "91343852333181432387730302044767688728495783935\n",
      "182687704666362864775460604089535377456991567871\n",
      "365375409332725729550921208179070754913983135743\n",
      "730750818665451459101842416358141509827966271487\n",
      "1461501637330902918203684832716283019655932542975\n",
      "2923003274661805836407369665432566039311865085951\n",
      "5846006549323611672814739330865132078623730171903\n",
      "11692013098647223345629478661730264157247460343807\n",
      "23384026197294446691258957323460528314494920687615\n",
      "46768052394588893382517914646921056628989841375231\n",
      "93536104789177786765035829293842113257979682750463\n",
      "187072209578355573530071658587684226515959365500927\n",
      "374144419156711147060143317175368453031918731001855\n",
      "748288838313422294120286634350736906063837462003711\n",
      "1496577676626844588240573268701473812127674924007423\n",
      "2993155353253689176481146537402947624255349848014847\n",
      "5986310706507378352962293074805895248510699696029695\n",
      "11972621413014756705924586149611790497021399392059391\n",
      "23945242826029513411849172299223580994042798784118783\n",
      "47890485652059026823698344598447161988085597568237567\n",
      "95780971304118053647396689196894323976171195136475135\n",
      "191561942608236107294793378393788647952342390272950271\n",
      "383123885216472214589586756787577295904684780545900543\n",
      "766247770432944429179173513575154591809369561091801087\n",
      "1532495540865888858358347027150309183618739122183602175\n",
      "3064991081731777716716694054300618367237478244367204351\n",
      "6129982163463555433433388108601236734474956488734408703\n",
      "12259964326927110866866776217202473468949912977468817407\n",
      "24519928653854221733733552434404946937899825954937634815\n",
      "49039857307708443467467104868809893875799651909875269631\n",
      "98079714615416886934934209737619787751599303819750539263\n",
      "196159429230833773869868419475239575503198607639501078527\n",
      "392318858461667547739736838950479151006397215279002157055\n",
      "784637716923335095479473677900958302012794430558004314111\n",
      "1569275433846670190958947355801916604025588861116008628223\n",
      "3138550867693340381917894711603833208051177722232017256447\n",
      "6277101735386680763835789423207666416102355444464034512895\n",
      "12554203470773361527671578846415332832204710888928069025791\n",
      "25108406941546723055343157692830665664409421777856138051583\n",
      "50216813883093446110686315385661331328818843555712276103167\n",
      "100433627766186892221372630771322662657637687111424552206335\n",
      "200867255532373784442745261542645325315275374222849104412671\n",
      "401734511064747568885490523085290650630550748445698208825343\n",
      "803469022129495137770981046170581301261101496891396417650687\n",
      "1606938044258990275541962092341162602522202993782792835301375\n",
      "3213876088517980551083924184682325205044405987565585670602751\n",
      "6427752177035961102167848369364650410088811975131171341205503\n",
      "12855504354071922204335696738729300820177623950262342682411007\n",
      "25711008708143844408671393477458601640355247900524685364822015\n",
      "51422017416287688817342786954917203280710495801049370729644031\n",
      "102844034832575377634685573909834406561420991602098741459288063\n",
      "205688069665150755269371147819668813122841983204197482918576127\n",
      "411376139330301510538742295639337626245683966408394965837152255\n",
      "822752278660603021077484591278675252491367932816789931674304511\n",
      "1645504557321206042154969182557350504982735865633579863348609023\n",
      "3291009114642412084309938365114701009965471731267159726697218047\n",
      "6582018229284824168619876730229402019930943462534319453394436095\n",
      "13164036458569648337239753460458804039861886925068638906788872191\n",
      "26328072917139296674479506920917608079723773850137277813577744383\n",
      "52656145834278593348959013841835216159447547700274555627155488767\n",
      "105312291668557186697918027683670432318895095400549111254310977535\n",
      "210624583337114373395836055367340864637790190801098222508621955071\n",
      "421249166674228746791672110734681729275580381602196445017243910143\n",
      "842498333348457493583344221469363458551160763204392890034487820287\n",
      "1684996666696914987166688442938726917102321526408785780068975640575\n",
      "3369993333393829974333376885877453834204643052817571560137951281151\n",
      "6739986666787659948666753771754907668409286105635143120275902562303\n",
      "13479973333575319897333507543509815336818572211270286240551805124607\n",
      "26959946667150639794667015087019630673637144422540572481103610249215\n",
      "53919893334301279589334030174039261347274288845081144962207220498431\n",
      "107839786668602559178668060348078522694548577690162289924414440996863\n",
      "215679573337205118357336120696157045389097155380324579848828881993727\n",
      "431359146674410236714672241392314090778194310760649159697657763987455\n",
      "862718293348820473429344482784628181556388621521298319395315527974911\n",
      "1725436586697640946858688965569256363112777243042596638790631055949823\n",
      "3450873173395281893717377931138512726225554486085193277581262111899647\n",
      "6901746346790563787434755862277025452451108972170386555162524223799295\n",
      "13803492693581127574869511724554050904902217944340773110325048447598591\n",
      "27606985387162255149739023449108101809804435888681546220650096895197183\n",
      "55213970774324510299478046898216203619608871777363092441300193790394367\n",
      "110427941548649020598956093796432407239217743554726184882600387580788735\n",
      "220855883097298041197912187592864814478435487109452369765200775161577471\n",
      "441711766194596082395824375185729628956870974218904739530401550323154943\n",
      "883423532389192164791648750371459257913741948437809479060803100646309887\n",
      "1766847064778384329583297500742918515827483896875618958121606201292619775\n",
      "3533694129556768659166595001485837031654967793751237916243212402585239551\n",
      "7067388259113537318333190002971674063309935587502475832486424805170479103\n",
      "14134776518227074636666380005943348126619871175004951664972849610340958207\n",
      "28269553036454149273332760011886696253239742350009903329945699220681916415\n",
      "56539106072908298546665520023773392506479484700019806659891398441363832831\n",
      "113078212145816597093331040047546785012958969400039613319782796882727665663\n",
      "226156424291633194186662080095093570025917938800079226639565593765455331327\n",
      "452312848583266388373324160190187140051835877600158453279131187530910662655\n",
      "904625697166532776746648320380374280103671755200316906558262375061821325311\n",
      "1809251394333065553493296640760748560207343510400633813116524750123642650623\n",
      "3618502788666131106986593281521497120414687020801267626233049500247285301247\n",
      "7237005577332262213973186563042994240829374041602535252466099000494570602495\n",
      "14474011154664524427946373126085988481658748083205070504932198000989141204991\n",
      "28948022309329048855892746252171976963317496166410141009864396001978282409983\n",
      "57896044618658097711785492504343953926634992332820282019728792003956564819967\n",
      "115792089237316195423570985008687907853269984665640564039457584007913129639935\n",
      "231584178474632390847141970017375815706539969331281128078915168015826259279871\n",
      "463168356949264781694283940034751631413079938662562256157830336031652518559743\n",
      "926336713898529563388567880069503262826159877325124512315660672063305037119487\n",
      "1852673427797059126777135760139006525652319754650249024631321344126610074238975\n",
      "3705346855594118253554271520278013051304639509300498049262642688253220148477951\n",
      "7410693711188236507108543040556026102609279018600996098525285376506440296955903\n",
      "14821387422376473014217086081112052205218558037201992197050570753012880593911807\n",
      "29642774844752946028434172162224104410437116074403984394101141506025761187823615\n",
      "59285549689505892056868344324448208820874232148807968788202283012051522375647231\n",
      "118571099379011784113736688648896417641748464297615937576404566024103044751294463\n",
      "237142198758023568227473377297792835283496928595231875152809132048206089502588927\n",
      "474284397516047136454946754595585670566993857190463750305618264096412179005177855\n",
      "948568795032094272909893509191171341133987714380927500611236528192824358010355711\n",
      "1897137590064188545819787018382342682267975428761855001222473056385648716020711423\n",
      "3794275180128377091639574036764685364535950857523710002444946112771297432041422847\n",
      "7588550360256754183279148073529370729071901715047420004889892225542594864082845695\n",
      "15177100720513508366558296147058741458143803430094840009779784451085189728165691391\n",
      "30354201441027016733116592294117482916287606860189680019559568902170379456331382783\n",
      "60708402882054033466233184588234965832575213720379360039119137804340758912662765567\n",
      "121416805764108066932466369176469931665150427440758720078238275608681517825325531135\n",
      "242833611528216133864932738352939863330300854881517440156476551217363035650651062271\n",
      "485667223056432267729865476705879726660601709763034880312953102434726071301302124543\n",
      "971334446112864535459730953411759453321203419526069760625906204869452142602604249087\n",
      "1942668892225729070919461906823518906642406839052139521251812409738904285205208498175\n",
      "3885337784451458141838923813647037813284813678104279042503624819477808570410416996351\n",
      "7770675568902916283677847627294075626569627356208558085007249638955617140820833992703\n",
      "15541351137805832567355695254588151253139254712417116170014499277911234281641667985407\n",
      "31082702275611665134711390509176302506278509424834232340028998555822468563283335970815\n",
      "62165404551223330269422781018352605012557018849668464680057997111644937126566671941631\n",
      "124330809102446660538845562036705210025114037699336929360115994223289874253133343883263\n",
      "248661618204893321077691124073410420050228075398673858720231988446579748506266687766527\n",
      "497323236409786642155382248146820840100456150797347717440463976893159497012533375533055\n",
      "994646472819573284310764496293641680200912301594695434880927953786318994025066751066111\n",
      "1989292945639146568621528992587283360401824603189390869761855907572637988050133502132223\n",
      "3978585891278293137243057985174566720803649206378781739523711815145275976100267004264447\n",
      "7957171782556586274486115970349133441607298412757563479047423630290551952200534008528895\n",
      "15914343565113172548972231940698266883214596825515126958094847260581103904401068017057791\n",
      "31828687130226345097944463881396533766429193651030253916189694521162207808802136034115583\n",
      "63657374260452690195888927762793067532858387302060507832379389042324415617604272068231167\n",
      "127314748520905380391777855525586135065716774604121015664758778084648831235208544136462335\n",
      "254629497041810760783555711051172270131433549208242031329517556169297662470417088272924671\n",
      "509258994083621521567111422102344540262867098416484062659035112338595324940834176545849343\n",
      "1018517988167243043134222844204689080525734196832968125318070224677190649881668353091698687\n",
      "2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397375\n",
      "4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794751\n",
      "8148143905337944345073782753637512644205873574663745002544561797417525199053346824733589503\n",
      "16296287810675888690147565507275025288411747149327490005089123594835050398106693649467179007\n",
      "32592575621351777380295131014550050576823494298654980010178247189670100796213387298934358015\n",
      "65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716031\n",
      "130370302485407109521180524058200202307293977194619920040712988758680403184853549195737432063\n",
      "260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864127\n",
      "521481209941628438084722096232800809229175908778479680162851955034721612739414196782949728255\n",
      "1042962419883256876169444192465601618458351817556959360325703910069443225478828393565899456511\n",
      "2085924839766513752338888384931203236916703635113918720651407820138886450957656787131798913023\n",
      "4171849679533027504677776769862406473833407270227837441302815640277772901915313574263597826047\n",
      "8343699359066055009355553539724812947666814540455674882605631280555545803830627148527195652095\n",
      "16687398718132110018711107079449625895333629080911349765211262561111091607661254297054391304191\n",
      "33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608383\n",
      "66749594872528440074844428317798503581334516323645399060845050244444366430645017188217565216767\n",
      "133499189745056880149688856635597007162669032647290798121690100488888732861290034376435130433535\n",
      "266998379490113760299377713271194014325338065294581596243380200977777465722580068752870260867071\n",
      "533996758980227520598755426542388028650676130589163192486760401955554931445160137505740521734143\n",
      "1067993517960455041197510853084776057301352261178326384973520803911109862890320275011481043468287\n",
      "2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936575\n",
      "4271974071841820164790043412339104229205409044713305539894083215644439451561281100045924173873151\n",
      "8543948143683640329580086824678208458410818089426611079788166431288878903122562200091848347746303\n",
      "17087896287367280659160173649356416916821636178853222159576332862577757806245124400183696695492607\n",
      "34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985215\n",
      "68351585149469122636640694597425667667286544715412888638305331450311031224980497600734786781970431\n",
      "136703170298938245273281389194851335334573089430825777276610662900622062449960995201469573563940863\n",
      "273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881727\n",
      "546812681195752981093125556779405341338292357723303109106442651602488249799843980805878294255763455\n",
      "1093625362391505962186251113558810682676584715446606218212885303204976499599687961611756588511526911\n",
      "2187250724783011924372502227117621365353169430893212436425770606409952999199375923223513177023053823\n",
      "4374501449566023848745004454235242730706338861786424872851541212819905998398751846447026354046107647\n",
      "8749002899132047697490008908470485461412677723572849745703082425639811996797503692894052708092215295\n",
      "17498005798264095394980017816940970922825355447145699491406164851279623993595007385788105416184430591\n",
      "34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861183\n",
      "69992023193056381579920071267763883691301421788582797965624659405118495974380029543152421664737722367\n",
      "139984046386112763159840142535527767382602843577165595931249318810236991948760059086304843329475444735\n",
      "279968092772225526319680285071055534765205687154331191862498637620473983897520118172609686658950889471\n",
      "559936185544451052639360570142111069530411374308662383724997275240947967795040236345219373317901778943\n",
      "1119872371088902105278721140284222139060822748617324767449994550481895935590080472690438746635803557887\n",
      "2239744742177804210557442280568444278121645497234649534899989100963791871180160945380877493271607115775\n",
      "4479489484355608421114884561136888556243290994469299069799978201927583742360321890761754986543214231551\n",
      "8958978968711216842229769122273777112486581988938598139599956403855167484720643781523509973086428463103\n",
      "17917957937422433684459538244547554224973163977877196279199912807710334969441287563047019946172856926207\n",
      "35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852415\n",
      "71671831749689734737838152978190216899892655911508785116799651230841339877765150252188079784691427704831\n",
      "143343663499379469475676305956380433799785311823017570233599302461682679755530300504376159569382855409663\n",
      "286687326998758938951352611912760867599570623646035140467198604923365359511060601008752319138765710819327\n",
      "573374653997517877902705223825521735199141247292070280934397209846730719022121202017504638277531421638655\n",
      "1146749307995035755805410447651043470398282494584140561868794419693461438044242404035009276555062843277311\n",
      "2293498615990071511610820895302086940796564989168281123737588839386922876088484808070018553110125686554623\n",
      "4586997231980143023221641790604173881593129978336562247475177678773845752176969616140037106220251373109247\n",
      "9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218495\n",
      "18347988927920572092886567162416695526372519913346248989900710715095383008707878464560148424881005492436991\n",
      "36695977855841144185773134324833391052745039826692497979801421430190766017415756929120296849762010984873983\n",
      "73391955711682288371546268649666782105490079653384995959602842860381532034831513858240593699524021969747967\n",
      "146783911423364576743092537299333564210980159306769991919205685720763064069663027716481187399048043939495935\n",
      "293567822846729153486185074598667128421960318613539983838411371441526128139326055432962374798096087878991871\n",
      "587135645693458306972370149197334256843920637227079967676822742883052256278652110865924749596192175757983743\n",
      "1174271291386916613944740298394668513687841274454159935353645485766104512557304221731849499192384351515967487\n",
      "2348542582773833227889480596789337027375682548908319870707290971532209025114608443463698998384768703031934975\n",
      "4697085165547666455778961193578674054751365097816639741414581943064418050229216886927397996769537406063869951\n",
      "9394170331095332911557922387157348109502730195633279482829163886128836100458433773854795993539074812127739903\n",
      "18788340662190665823115844774314696219005460391266558965658327772257672200916867547709591987078149624255479807\n",
      "37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959615\n",
      "75153362648762663292463379097258784876021841565066235862633311089030688803667470190838367948312598497021919231\n",
      "150306725297525326584926758194517569752043683130132471725266622178061377607334940381676735896625196994043838463\n",
      "300613450595050653169853516389035139504087366260264943450533244356122755214669880763353471793250393988087676927\n",
      "601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353855\n",
      "1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707711\n",
      "2404907604760405225358828131112281116032698930082119547604265954848982041717359046106827774346003151904701415423\n",
      "4809815209520810450717656262224562232065397860164239095208531909697964083434718092213655548692006303809402830847\n",
      "9619630419041620901435312524449124464130795720328478190417063819395928166869436184427311097384012607618805661695\n",
      "19239260838083241802870625048898248928261591440656956380834127638791856333738872368854622194768025215237611323391\n",
      "38478521676166483605741250097796497856523182881313912761668255277583712667477744737709244389536050430475222646783\n",
      "76957043352332967211482500195592995713046365762627825523336510555167425334955489475418488779072100860950445293567\n",
      "153914086704665934422965000391185991426092731525255651046673021110334850669910978950836977558144201721900890587135\n",
      "307828173409331868845930000782371982852185463050511302093346042220669701339821957901673955116288403443801781174271\n",
      "615656346818663737691860001564743965704370926101022604186692084441339402679643915803347910232576806887603562348543\n",
      "1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697087\n",
      "2462625387274654950767440006258975862817483704404090416746768337765357610718575663213391640930307227550414249394175\n",
      "4925250774549309901534880012517951725634967408808180833493536675530715221437151326426783281860614455100828498788351\n",
      "9850501549098619803069760025035903451269934817616361666987073351061430442874302652853566563721228910201656997576703\n",
      "19701003098197239606139520050071806902539869635232723333974146702122860885748605305707133127442457820403313995153407\n",
      "39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306815\n",
      "78804012392788958424558080200287227610159478540930893335896586808491443542994421222828532509769831281613255980613631\n",
      "157608024785577916849116160400574455220318957081861786671793173616982887085988842445657065019539662563226511961227263\n",
      "315216049571155833698232320801148910440637914163723573343586347233965774171977684891314130039079325126453023922454527\n",
      "630432099142311667396464641602297820881275828327447146687172694467931548343955369782628260078158650252906047844909055\n",
      "1260864198284623334792929283204595641762551656654894293374345388935863096687910739565256520156317300505812095689818111\n",
      "2521728396569246669585858566409191283525103313309788586748690777871726193375821479130513040312634601011624191379636223\n",
      "5043456793138493339171717132818382567050206626619577173497381555743452386751642958261026080625269202023248382759272447\n",
      "10086913586276986678343434265636765134100413253239154346994763111486904773503285916522052161250538404046496765518544895\n",
      "20173827172553973356686868531273530268200826506478308693989526222973809547006571833044104322501076808092993531037089791\n",
      "40347654345107946713373737062547060536401653012956617387979052445947619094013143666088208645002153616185987062074179583\n",
      "80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359167\n",
      "161390617380431786853494948250188242145606612051826469551916209783790476376052574664352834580008614464743948248296718335\n",
      "322781234760863573706989896500376484291213224103652939103832419567580952752105149328705669160017228929487896496593436671\n",
      "645562469521727147413979793000752968582426448207305878207664839135161905504210298657411338320034457858975792993186873343\n",
      "1291124939043454294827959586001505937164852896414611756415329678270323811008420597314822676640068915717951585986373746687\n",
      "2582249878086908589655919172003011874329705792829223512830659356540647622016841194629645353280137831435903171972747493375\n",
      "5164499756173817179311838344006023748659411585658447025661318713081295244033682389259290706560275662871806343945494986751\n",
      "10328999512347634358623676688012047497318823171316894051322637426162590488067364778518581413120551325743612687890989973503\n",
      "20657999024695268717247353376024094994637646342633788102645274852325180976134729557037162826241102651487225375781979947007\n",
      "41315998049390537434494706752048189989275292685267576205290549704650361952269459114074325652482205302974450751563959894015\n",
      "82631996098781074868989413504096379978550585370535152410581099409300723904538918228148651304964410605948901503127919788031\n",
      "165263992197562149737978827008192759957101170741070304821162198818601447809077836456297302609928821211897803006255839576063\n",
      "330527984395124299475957654016385519914202341482140609642324397637202895618155672912594605219857642423795606012511679152127\n",
      "661055968790248598951915308032771039828404682964281219284648795274405791236311345825189210439715284847591212025023358304255\n",
      "1322111937580497197903830616065542079656809365928562438569297590548811582472622691650378420879430569695182424050046716608511\n",
      "2644223875160994395807661232131084159313618731857124877138595181097623164945245383300756841758861139390364848100093433217023\n",
      "5288447750321988791615322464262168318627237463714249754277190362195246329890490766601513683517722278780729696200186866434047\n",
      "10576895500643977583230644928524336637254474927428499508554380724390492659780981533203027367035444557561459392400373732868095\n",
      "21153791001287955166461289857048673274508949854856999017108761448780985319561963066406054734070889115122918784800747465736191\n",
      "42307582002575910332922579714097346549017899709713998034217522897561970639123926132812109468141778230245837569601494931472383\n",
      "84615164005151820665845159428194693098035799419427996068435045795123941278247852265624218936283556460491675139202989862944767\n",
      "169230328010303641331690318856389386196071598838855992136870091590247882556495704531248437872567112920983350278405979725889535\n",
      "338460656020607282663380637712778772392143197677711984273740183180495765112991409062496875745134225841966700556811959451779071\n",
      "676921312041214565326761275425557544784286395355423968547480366360991530225982818124993751490268451683933401113623918903558143\n",
      "1353842624082429130653522550851115089568572790710847937094960732721983060451965636249987502980536903367866802227247837807116287\n",
      "2707685248164858261307045101702230179137145581421695874189921465443966120903931272499975005961073806735733604454495675614232575\n",
      "5415370496329716522614090203404460358274291162843391748379842930887932241807862544999950011922147613471467208908991351228465151\n",
      "10830740992659433045228180406808920716548582325686783496759685861775864483615725089999900023844295226942934417817982702456930303\n",
      "21661481985318866090456360813617841433097164651373566993519371723551728967231450179999800047688590453885868835635965404913860607\n",
      "43322963970637732180912721627235682866194329302747133987038743447103457934462900359999600095377180907771737671271930809827721215\n",
      "86645927941275464361825443254471365732388658605494267974077486894206915868925800719999200190754361815543475342543861619655442431\n",
      "173291855882550928723650886508942731464777317210988535948154973788413831737851601439998400381508723631086950685087723239310884863\n",
      "346583711765101857447301773017885462929554634421977071896309947576827663475703202879996800763017447262173901370175446478621769727\n",
      "693167423530203714894603546035770925859109268843954143792619895153655326951406405759993601526034894524347802740350892957243539455\n",
      "1386334847060407429789207092071541851718218537687908287585239790307310653902812811519987203052069789048695605480701785914487078911\n",
      "2772669694120814859578414184143083703436437075375816575170479580614621307805625623039974406104139578097391210961403571828974157823\n",
      "5545339388241629719156828368286167406872874150751633150340959161229242615611251246079948812208279156194782421922807143657948315647\n",
      "11090678776483259438313656736572334813745748301503266300681918322458485231222502492159897624416558312389564843845614287315896631295\n",
      "22181357552966518876627313473144669627491496603006532601363836644916970462445004984319795248833116624779129687691228574631793262591\n",
      "44362715105933037753254626946289339254982993206013065202727673289833940924890009968639590497666233249558259375382457149263586525183\n",
      "88725430211866075506509253892578678509965986412026130405455346579667881849780019937279180995332466499116518750764914298527173050367\n",
      "177450860423732151013018507785157357019931972824052260810910693159335763699560039874558361990664932998233037501529828597054346100735\n",
      "354901720847464302026037015570314714039863945648104521621821386318671527399120079749116723981329865996466075003059657194108692201471\n",
      "709803441694928604052074031140629428079727891296209043243642772637343054798240159498233447962659731992932150006119314388217384402943\n",
      "1419606883389857208104148062281258856159455782592418086487285545274686109596480318996466895925319463985864300012238628776434768805887\n",
      "2839213766779714416208296124562517712318911565184836172974571090549372219192960637992933791850638927971728600024477257552869537611775\n",
      "5678427533559428832416592249125035424637823130369672345949142181098744438385921275985867583701277855943457200048954515105739075223551\n",
      "11356855067118857664833184498250070849275646260739344691898284362197488876771842551971735167402555711886914400097909030211478150447103\n",
      "22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894207\n",
      "45427420268475430659332737993000283397102585042957378767593137448789955507087370207886940669610222847547657600391636120845912601788415\n",
      "90854840536950861318665475986000566794205170085914757535186274897579911014174740415773881339220445695095315200783272241691825203576831\n",
      "181709681073901722637330951972001133588410340171829515070372549795159822028349480831547762678440891390190630401566544483383650407153663\n",
      "363419362147803445274661903944002267176820680343659030140745099590319644056698961663095525356881782780381260803133088966767300814307327\n",
      "726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614655\n",
      "1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229311\n",
      "2907354897182427562197295231552018137414565442749272241125960796722557152453591693304764202855054262243050086425064711734138406514458623\n",
      "5814709794364855124394590463104036274829130885498544482251921593445114304907183386609528405710108524486100172850129423468276813028917247\n",
      "11629419588729710248789180926208072549658261770997088964503843186890228609814366773219056811420217048972200345700258846936553626057834495\n",
      "23258839177459420497578361852416145099316523541994177929007686373780457219628733546438113622840434097944400691400517693873107252115668991\n",
      "46517678354918840995156723704832290198633047083988355858015372747560914439257467092876227245680868195888801382801035387746214504231337983\n",
      "93035356709837681990313447409664580397266094167976711716030745495121828878514934185752454491361736391777602765602070775492429008462675967\n",
      "186070713419675363980626894819329160794532188335953423432061490990243657757029868371504908982723472783555205531204141550984858016925351935\n",
      "372141426839350727961253789638658321589064376671906846864122981980487315514059736743009817965446945567110411062408283101969716033850703871\n",
      "744282853678701455922507579277316643178128753343813693728245963960974631028119473486019635930893891134220822124816566203939432067701407743\n",
      "1488565707357402911845015158554633286356257506687627387456491927921949262056238946972039271861787782268441644249633132407878864135402815487\n",
      "2977131414714805823690030317109266572712515013375254774912983855843898524112477893944078543723575564536883288499266264815757728270805630975\n",
      "5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261951\n",
      "11908525658859223294760121268437066290850060053501019099651935423375594096449911575776314174894302258147533153997065059263030913083222523903\n",
      "23817051317718446589520242536874132581700120107002038199303870846751188192899823151552628349788604516295066307994130118526061826166445047807\n",
      "47634102635436893179040485073748265163400240214004076398607741693502376385799646303105256699577209032590132615988260237052123652332890095615\n",
      "95268205270873786358080970147496530326800480428008152797215483387004752771599292606210513399154418065180265231976520474104247304665780191231\n",
      "190536410541747572716161940294993060653600960856016305594430966774009505543198585212421026798308836130360530463953040948208494609331560382463\n",
      "381072821083495145432323880589986121307201921712032611188861933548019011086397170424842053596617672260721060927906081896416989218663120764927\n",
      "762145642166990290864647761179972242614403843424065222377723867096038022172794340849684107193235344521442121855812163792833978437326241529855\n",
      "1524291284333980581729295522359944485228807686848130444755447734192076044345588681699368214386470689042884243711624327585667956874652483059711\n",
      "3048582568667961163458591044719888970457615373696260889510895468384152088691177363398736428772941378085768487423248655171335913749304966119423\n",
      "6097165137335922326917182089439777940915230747392521779021790936768304177382354726797472857545882756171536974846497310342671827498609932238847\n",
      "12194330274671844653834364178879555881830461494785043558043581873536608354764709453594945715091765512343073949692994620685343654997219864477695\n",
      "24388660549343689307668728357759111763660922989570087116087163747073216709529418907189891430183531024686147899385989241370687309994439728955391\n",
      "48777321098687378615337456715518223527321845979140174232174327494146433419058837814379782860367062049372295798771978482741374619988879457910783\n",
      "97554642197374757230674913431036447054643691958280348464348654988292866838117675628759565720734124098744591597543956965482749239977758915821567\n",
      "195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643135\n",
      "390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286271\n",
      "780437137578998057845399307448291576437149535666242787714789239906342934704941405030076525765872992789956732780351655723861993919822071326572543\n",
      "1560874275157996115690798614896583152874299071332485575429578479812685869409882810060153051531745985579913465560703311447723987839644142653145087\n",
      "3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290175\n",
      "6243497100631984462763194459586332611497196285329942301718313919250743477639531240240612206126983942319653862242813245790895951358576570612580351\n",
      "12486994201263968925526388919172665222994392570659884603436627838501486955279062480481224412253967884639307724485626491581791902717153141225160703\n",
      "24973988402527937851052777838345330445988785141319769206873255677002973910558124960962448824507935769278615448971252983163583805434306282450321407\n",
      "49947976805055875702105555676690660891977570282639538413746511354005947821116249921924897649015871538557230897942505966327167610868612564900642815\n",
      "99895953610111751404211111353381321783955140565279076827493022708011895642232499843849795298031743077114461795885011932654335221737225129801285631\n",
      "199791907220223502808422222706762643567910281130558153654986045416023791284464999687699590596063486154228923591770023865308670443474450259602571263\n",
      "399583814440447005616844445413525287135820562261116307309972090832047582568929999375399181192126972308457847183540047730617340886948900519205142527\n",
      "799167628880894011233688890827050574271641124522232614619944181664095165137859998750798362384253944616915694367080095461234681773897801038410285055\n",
      "1598335257761788022467377781654101148543282249044465229239888363328190330275719997501596724768507889233831388734160190922469363547795602076820570111\n",
      "3196670515523576044934755563308202297086564498088930458479776726656380660551439995003193449537015778467662777468320381844938727095591204153641140223\n",
      "6393341031047152089869511126616404594173128996177860916959553453312761321102879990006386899074031556935325554936640763689877454191182408307282280447\n",
      "12786682062094304179739022253232809188346257992355721833919106906625522642205759980012773798148063113870651109873281527379754908382364816614564560895\n",
      "25573364124188608359478044506465618376692515984711443667838213813251045284411519960025547596296126227741302219746563054759509816764729633229129121791\n",
      "51146728248377216718956089012931236753385031969422887335676427626502090568823039920051095192592252455482604439493126109519019633529459266458258243583\n",
      "102293456496754433437912178025862473506770063938845774671352855253004181137646079840102190385184504910965208878986252219038039267058918532916516487167\n",
      "204586912993508866875824356051724947013540127877691549342705710506008362275292159680204380770369009821930417757972504438076078534117837065833032974335\n",
      "409173825987017733751648712103449894027080255755383098685411421012016724550584319360408761540738019643860835515945008876152157068235674131666065948671\n",
      "818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897343\n",
      "1636695303948070935006594848413799576108321023021532394741645684048066898202337277441635046162952078575443342063780035504608628272942696526664263794687\n"
     ]
    }
   ],
   "source": [
    "for i in range(500):\n",
    "    print(2**i - 1)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
